Method and system to provide video-based search results

ABSTRACT

Method and system to provide video-based search results are described. A search results video may be present to a user details from listings that match certain search criteria. When a select request associated with the search results video is detected, a listing rendering module presents the selected listing on the display device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No.61/623,822, filed Apr. 13, 2012, entitled “METHOD AND SYSTEM TO PROVIDEVIDEO-BASED SEARCH RESULTS,” which is incorporated herein by referencein its entirety.

TECHNICAL FIELD

This application relates to the technical fields of software and/orhardware technology and, in one example embodiment, to system and methodto provide video-based search results.

BACKGROUND

An on-line trading platform allows users to shop for almost anythingusing a web browser application. A user may find an item listed by anon-line trading application by entering keywords into the search boxprovided on an associated web page or by browsing through the list ofcategories on the home page. The results of a search are presented tothe user on a search results page.

BRIEF DESCRIPTION OF DRAWINGS

Embodiments of the present invention are illustrated by way of exampleand not limitation in the figures of the accompanying drawings, in whichlike reference numbers indicate similar elements and in which:

FIG. 1 is a network diagram depicting a client-server system, withinwhich one example embodiment may be deployed;

FIG. 2 is a block diagram of a system to provide video-based searchresults, in accordance with one example embodiment;

FIG. 3 is a flow chart of a method to provide video-based searchresults, in accordance with an example embodiment;

FIG. 4 shows an example user interface to provide video-based searchresults, in accordance with an example embodiment; and

FIG. 5 is a diagrammatic representation of an example machine in theform of a computer system within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed.

DETAILED DESCRIPTION

A method and to provide video-based search results in the context ofon-line trading is described. In the following description, for purposesof explanation, numerous specific details are set forth in order toprovide a thorough understanding of an embodiment of the presentinvention. It will be evident, however, to one skilled in the art thatthe present invention may be practiced without these specific details.

Embodiments of the present invention include approaches that enhanceuser's experience by rendering search results in an engaging video. Inone example embodiment, when someone types in a query, the backendsystem, that may be referred to as a video-based search results module,calls a search system that may be provided by an on-line tradingplatform to get the relevant results and then creates a dynamic video atthe runtime. The video presents search results as it renders relevantinformation for the resulting item listings (e.g., picture, price andtitle of item). The video may be presented as an overlay, it may beembedded in a webpage that shows other search-related information, etc.The video may also include custom animations and/or music. When the userclicks on the video, the user is redirected to the appropriate View Itempage based on the item being displayed in the video when the userclicked on it.

In one embodiment, the video-based search results module may beconfigured to cache or prepare video files that present search resultsassociated with certain searches that have been determined to berequested by uses fairly often. These cache video files may be updateperiodically, as new item listings may be added into the item listingsrepository (e.g., a database). A video-based search results presentationmay also be created on the fly, in response to the search requested by auser and the search results retrieved by the search system.

In one embodiment, the video-based search results module creates amapping between item listings presented in a video and the time frame inthe video during which the item listing is being presented. When thevideo-based search results module detects a click on the video (or someother predetermined triggering event, such as activation to a triggervideo control, e.g., a “show this item details” button), the video-basedsearch results module determines the time within the video, at which thetriggering event was detected, accesses the mapping information toascertain a listing identification (id) mapped to that time stamp or tothe time frame that includes that time stamp, and retrieves the itemlisting that matches that item listing id. The item listing is thenpresented to the user.

Example method and system to provide video-based search results may beimplemented in the context of a network environment 100 illustrated inFIG. 3 below, specifically as the video-based search results module 121.

FIG. 1 is a network diagram depicting a client-server system 100, withinwhich one example embodiment may be deployed. A networked system 102, inthe example forms of a network-based marketplace or publication system,provides server-side functionality, via a network 104 (e.g., theInternet or Wide Area Network (WAN)) to one or more clients. FIG. 1illustrates, for example, client applications 105 (e.g., mobileapplications), an integration module 107, and a web client 106 (e.g., amobile or desktop Web browser) operating on the client machine 110(e.g., a mobile device), as well as a programmatic client 108 operatingon the client machine 112.

An application Program Interface (API) server 114 and a web server 116are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 118. The application servers 118host one or more marketplace applications 120 and payment applications122. The application servers 118 are, in turn, shown to be coupled toone or more databases servers 124 that facilitate access to one or moredatabases 126.

The marketplace applications 120 may provide a number of marketplacefunctions and services to users that access the networked system 102.Shown in FIG. 1 is a video-based search results module 121 included asone of the marketplace applications 120. The video-based search resultsmodule 121 may be utilized beneficially to present search results as anengaging video.

The payment applications 122 may provide a number of payment servicesand functions to users. The payment applications 122 may allow users toaccumulate value (e.g., in a commercial currency, such as the U.S.dollar, or a proprietary currency, such as “points”) in accounts, andthen later to redeem the accumulated value for products (e.g., goods orservices) that are made available via the marketplace applications 120.While the marketplace and payment applications 120 and 122 are shown inFIG. 1 to both form part of the networked system 102, it will beappreciated that, in alternative embodiments, the payment applications122 may form part of a payment service that is separate and distinctfrom the networked system 102.

Further, while the system 100 shown in FIG. 1 employs client-serverarchitecture, the subject matter of the application is of course notlimited to such an architecture, and could equally well find applicationin a distributed, or peer-to-peer, architecture system, for example. Thevarious marketplace and payment applications 120 and 122 could also beimplemented as standalone software programs, which do not necessarilyhave networking capabilities.

The web client 106 accesses the various marketplace and paymentapplications 120 and 122 via the web interface supported by the webserver 116. Similarly, the programmatic client 108 accesses the variousservices and functions provided by the marketplace and paymentapplications 120 and 122 via the programmatic interface provided by theAPI server 114. The programmatic client 108 may, for example, be aseller application (e.g., the TurboLister application developed by eBayInc., of San Jose, Calif.) to enable sellers to author and managelistings on the networked system 102 in an off-line manner, and toperform batch-mode communications between the programmatic client 108and the networked system 102.

The integration module 107 on the client machine (e.g., a mobile phone)may submit requests to the marketplace applications 110, through the APIserver 114, for an up-to-date (e.g., current) publication related togoods and/or services being offered for sale via the networked system102. A publication related to goods and/or services being offered forsale may also be termed an item listing. Alternatively or additionallythe client machine 110 may request one or more current publications fromthe client machine 112, via the network 104. In various exampleembodiments, the client machine 112 may provide a current publication tothe client machine 110, after generating the current publication ofretrieving such a publication from the networked system 102.

In some example embodiments, the integration module is embedded withinone or more of the client applications 105 and may collect userparameters, receive targeted current publications based on the userparameters, and cause the display of one or more targeted currentpublications. A targeted current publication may be displayed amonggraphics associated with the application in which the integration moduleis embedded.

The applications 120, including the video-based search results module121, may be hosted on dedicated or shared server machines (not shown)that are communicatively coupled to enable communications between servermachines. The applications themselves are communicatively coupled (e.g.,via appropriate interfaces) to each other and to various data sources,so as to allow information to be passed between the applications or soas to allow the applications to share and access common data. Theapplications may furthermore access server one or more databases 126 viathe database servers 128.

The networked system 102 may provide a number of publishing, listing andprice-setting mechanisms whereby a seller may list (or publishinformation concerning) goods or services for sale, a buyer can expressinterest in or indicate a desire to purchase such goods or services, anda price can be set for a transaction pertaining to the goods or service.

FIG. 2 is a block diagram of a system 200 to provide video-based searchresults, in accordance with one example embodiment. As shown in FIG. 2,the system 200 includes a video player 204, a select request detector206, a select request detector 206, a mapping module 208, and a listingrendering module 210. The video player 204 may be configured to present,on a display device search results as a search results video, the searchresults representing a plurality of listings. The search results videomay be pre-generated in advance by a search results video generator 202,based on those listings that correspond to frequently-performed searches(or frequently-used search terms). The search results video may also begenerated on the fly, in response to a search requested by a user. Theselect request detector 206 may be configured to detect a select requestassociated with the search results video. A select request may be in theform of a click on the area displaying the search results video, or, forexample, in the form of a cursor hovering over the area displaying thesearch results video. The mapping module 208 may be configured todetermine a selected listing from the plurality of listings based on aplaying state of the search results video at a time of the selectrequest and the listing rendering module 210 may be configured topresent the selected listing on the display device. The mapping module208 may determine an identification of the selected listing by, e.g.,determining a time stamp in the search results video associated with theselect request and, based on the determined time stamp, determine anidentification of the selected listing. The search results videogenerator 202 may be configured to generate a mapping between a listingpresented in the search results video and a time frame in the searchresults video during which the listing is being presented. An examplemethod to provide video-based search results can be described withreference to FIG. 3.

FIG. 3 is a flow chart of a method 300 to provide video-based searchresults, according to one example embodiment. The method 300 may beperformed by processing logic that may comprise hardware (e.g.,dedicated logic, programmable logic, microcode, etc.), software (such asrun on a general purpose computer system or a dedicated machine), or acombination of both. In one example embodiment, the processing logicresides at the server system 118 of FIG. 1 and, specifically, at thesystem 200 shown in FIG. 2.

As shown in FIG. 3, the method 300 commences at operation 310, when thevideo player 204 of FIG. 2 present results of a search in the form of asearch results video, the search results video displaying details fromlistings that match certain search criteria. As mentioned above, thesearch results video may be pre-generated in advance or on the fly, inresponse to a search requested by a user. At operation 320, the selectrequest detector 306 of FIG. 2 detects a select request associated withthe search results video, which may be in the form of a click or a hoveraction. The mapping module 208 of FIG. 2 determines a selected listingbased on a playing state of the search results video at a time of theselect request at operation 330. At operation 340, the listing renderingmodule 210 of FIG. 2 presents the selected listing on the displaydevice.

FIG. 4 illustrates a user interface 400 that can present video-basedsearch results as a video (in area 410 on the left-hand side of FIG. 4),as well as the item listing that was presented in the video when a userclicked on or hovered over the area 410 (in area 420 on the right-handside of FIG. 4).

Example dynamic XML-based template for creating a video version ofsearch results is shown below in Table 1 below.

TABLE 1 <animator duration=“6.0” type=“grow” direction=“left”/> <filterduration=“1.5” type=“alpha” alphaStart=“0.0” alphaEnd=“1.0”/> <filtermargin-end=“0.0” duration=“1.5” type=“alpha” alphaStart=“1.0”alphaEnd=“0.0”/> <filter type=“blur”/> </text> <text left=“0.09”height=“0.18” bottom=“0.01” type=“zone” fontcolor=“#000000”>$25<animatorduration=“6.0” type=“grow” direction=“left”/> <animator duration=“1.0”type=“slide-in” direction=“right”/> <animator duration=“1.0”type=“slide-out” direction=“right”/> <animator duration=“6.0”type=“grow” direction=“right”/> <filter duration=“1.5” type=“alpha”alphaStart=“0.0” alphaEnd=“1.0”/> <filter margin-end=“0.0”duration=“1.5” type=“alpha” alphaStart=“1.0” alphaEnd=“0.0”/> <filtertype=“blur” diameter=“2.0”/> </text> </stack> <stack duration=“6.0”><sequence> <effect duration=“6.0” type=“kenburns”> <imagefilename=“http://i.ebayimg.com/19/!B61-,pwEWK~$(KGrHqR,llcEy+jCyFGmBMyf5ilKRQ~~1_12.JPG”> <filter width=“0.1”type=“frame” color=“#FFFFFFFF”/> </image> </effect> </sequence>

While the example shown above is an XML file, a template for creating avideo version of search results may be provided in other formatsacceptable by video-creation tools. It will be noted that the techniquesdescribed herein may be practiced utilizing any video-creation software.

FIG. 5 is a diagrammatic representation of a machine in the example formof a computer system 300 within which a set of instructions, for causingthe machine to perform any one or more of the methodologies discussedherein, may be executed. In alternative embodiments, the machineoperates as a stand-alone device or may be connected (e.g., networked)to other machines. In a networked deployment, the machine may operate inthe capacity of a server or a client machine in a server-client networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. The machine may be a personal computer (PC), atablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), acellular telephone, a web appliance, a network router, switch or bridge,or any machine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The example computer system 500 includes a processor 503 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 504 and a static memory 506, which communicate witheach other via a bus 505. The computer system 500 may further include avideo display unit 510 (e.g., a liquid crystal display (LCD) or acathode ray tube (CRT)). The computer system 500 also includes analpha-numeric input device 512 (e.g., a keyboard), a user interface (UI)navigation device 514 (e.g., a cursor control device), a disk drive unit516, a signal generation device 518 (e.g., a speaker) and a networkinterface device 520.

The disk drive unit 516 includes a machine-readable medium 522 on whichis stored one or more sets of instructions and data structures (e.g.,software 524) embodying or utilized by any one or more of themethodologies or functions described herein. The software 524 may alsoreside, completely or at least partially, within the main memory 504and/or within the processor 502 during execution thereof by the computersystem 500, with the main memory 504 and the processor 502 alsoconstituting machine-readable media.

The software 524 may further be transmitted or received over a network526 via the network interface device 570 utilizing any one of a numberof well-known transfer protocols (e.g., Hyper Text Transfer Protocol(HTTP)).

While the machine-readable medium 522 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single medium or multiple media (e.g., a centralizedor distributed database, and/or associated caches and servers) thatstore the one or more sets of instructions. The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring and encoding a set of instructions for execution by the machineand that cause the machine to perform any one or more of themethodologies of embodiments of the present invention, or that iscapable of storing and encoding data structures utilized by orassociated with such a set of instructions. The term “machine-readablemedium” shall accordingly be taken to include, but not be limited to,solid-state memories, optical and magnetic media. Such media may alsoinclude, without limitation, hard disks, floppy disks, flash memorycards, digital video disks, random access memory (RAMs), read onlymemory (ROMs), and the like.

The embodiments described herein may be implemented in an operatingenvironment comprising software installed on a computer, in hardware, orin a combination of software and hardware. Such embodiments of theinventive subject matter may be referred to herein, individually orcollectively, by the term “invention” merely for convenience and withoutintending to voluntarily limit the scope of this application to anysingle invention or inventive concept if more than one is, in fact,disclosed.

Modules, Components and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied (1) on a non-transitorymachine-readable medium or (2) in a transmission signal) orhardware-implemented modules. A hardware-implemented module is tangibleunit capable of performing certain operations and may be configured orarranged in a certain manner. In example embodiments, one or morecomputer systems (e.g., a standalone, client or server computer system)or one or more processors may be configured by software (e.g., anapplication or application portion) as a hardware-implemented modulethat operates to perform certain operations as described herein.

In various embodiments, a hardware-implemented module may be implementedmechanically or electronically. For example, a hardware-implementedmodule may comprise dedicated circuitry or logic that is permanentlyconfigured (e.g., as a special-purpose processor, such as a fieldprogrammable gate array (FPGA) or an application-specific integratedcircuit (ASIC)) to perform certain operations. A hardware-implementedmodule may also comprise programmable logic or circuitry (e.g., asencompassed within a general-purpose processor or other programmableprocessor) that is temporarily configured by software to perform certainoperations. It will be appreciated that the decision to implement ahardware-implemented module mechanically, in dedicated and permanentlyconfigured circuitry, or in temporarily configured circuitry (e.g.,configured by software) may be driven by cost and time considerations.

Accordingly, the term “hardware-implemented module” should be understoodto encompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired) or temporarily ortransitorily configured (e.g., programmed) to operate in a certainmanner and/or to perform certain operations described herein.Considering embodiments in winch hardware-implemented modules aretemporarily configured (e.g., programmed), each of thehardware-implemented modules need not be configured or instantiated atany one instance in time. For example, where the hardware-implementedmodules comprise a general-purpose processor configured using software,the general-purpose processor may be configured as respective differenthardware-implemented modules at different times. Software mayaccordingly configure a processor, for example, to constitute aparticular hardware-implemented module at one instance of time and toconstitute a different hardware-implemented module at a differentinstance of time.

Hardware-implemented modules can provide information to, and receiveinformation from, other hardware-implemented modules. Accordingly, thedescribed hardware-implemented modules may be regarded as beingcommunicatively coupled. Where multiple of such hardware-implementedmodules exist contemporaneously, communications may be achieved throughsignal transmission (e.g., over appropriate circuits and buses) thatconnect the hardware-implemented modules. In embodiments in whichmultiple hardware-implemented modules are configured or instantiated atdifferent times, communications between such hardware-implementedmodules may be achieved, for example, through the storage and retrievalof information in memory structures to which the multiplehardware-implemented modules have access. For example, onehardware-implemented module may perform an operation, and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware-implemented module may then,at a later time, access the memory device to retrieve and process thestored output. Hardware-implemented modules may also initiatecommunications with input or output devices, and can operate on aresource (e.g., a collection of information).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or processors or processor-implementedmodules. The performance of certain of the operations may be distributedamong the one or more processors, not only residing within a singlemachine, but deployed across a number of machines. In some exampleembodiments, the processor or processors may be located in a singlelocation, (e.g., within a home environment, an office environment or asa server farm), while in other embodiments the processors may bedistributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork (e.g., the Internet) and via one or more appropriate interfaces(e.g., Application Program Interfaces (APIs).)

Thus, method and system to provide video-based search results have beendescribed. Although embodiment have been described with reference tospecific example embodiments, it will be evident that variousmodifications and changes may be made to these embodiments withoutdeparting from the broader spirit and scope of the inventive subjectmatter. Accordingly, the specification and drawings are to be regardedin an illustrative rather than a restrictive sense.

1. A system comprising: at least one processor coupled to a memory; avideo player to present, on a display device, using at least oneprocessor, search results as a search results video, the search resultsrepresenting a plurality of listings; a select request detector todetect, using the at least one processor, a select request associatedwith the search results video; a mapping module to determine, using theat least one processor, a selected listing from the plurality oflistings based on a playing state of the search results video at a timeof the select request; and a listing rendering module to present, usingat least one processor, the selected listing on the display device. 2.The system of claim 1, further comprising a search results videogenerator to, using the at least one processor: identify frequently usedsearch terms; identify listings associated with the frequently usedsearch terms; and generate the search results video based on thelistings associated with the frequently used search terms.
 3. The systemof claim 2, further comprising a search results video generator to,using the at least one processor, generate the search results videobased on one or more search terms provided with a user's request toretrieve listings that satisfy certain criteria.
 4. The system of claim1, further comprising a search results video generator to, using the atleast one processor, generate the search results video based on one ormore search terms provided with a user's request to retrieve listingsthat satisfy certain criteria.
 5. The system of claim 1, wherein theselect request is associated with a click on a video display areadisplaying the search results video.
 6. The system of claim 1, whereinthe select request is associated with a hover action over a videodisplay area displaying the search results video.
 7. The system of claim1, wherein the mapping module is to: determine a time stamp in thesearch results video associated with the select request; and based onthe determined time stamp in the search results video, determine anidentification of the selected listing.
 8. The system of claim 1,wherein the search results video generator is to generate a mappingbetween a listing presented in the search results video and a time framein the search results video during which the listing is being presented.9. The system of claim 1, wherein the search results video comprisespresentation of respective pictures, prices and titles of the pluralityof listings.
 10. The system of claim 1, wherein the listing renderingmodule is to present the selected listing on the display device as anoverlay or as embedded in a webpage that shows other search-relatedinformation.
 11. A method comprising: presenting, on a display device,using at least one processor, search results as a search results video,the search results representing a plurality of listings; detecting,using at least one processor, a select request associated with thesearch results video; determining, using at least one processor, aselected listing from the plurality of listings based on a playing stateof the search results video at a time of the select request; andpresenting, using at least one processor, the selected listing on thedisplay device.
 12. The method of claim 11, comprising: identifyingfrequently used search terms; identifying listings associated with thefrequently used search terms; and generating the search results videobased on the listings associated with the frequently used search terms.13. The method of claim 12, comprising updating the search results videoin response to detecting a new listing.
 14. The method of claim 11,comprising generating the search results video based on one or moresearch terms provided with a user's request to retrieve listings thatsatisfy certain criteria.
 15. The method of claim 11, wherein the selectrequest is associated with a click on a video display area displayingthe search results video.
 16. The method of claim 11, wherein the selectrequest is associated with a hover action over a video display areadisplaying the search results video.
 17. The method of claim 11, whereinthe determining of the selected listing from the plurality of listingscomprises: determining a time stamp in the search results videoassociated with the select request; and based on the determined timestamp in the search results video, determining an identification of theselected listing.
 18. The method of claim 11, comprising generating amapping between a listing presented in the search results video and atime frame in the search results video during which the listing is beingpresented.
 19. The method of claim 11, wherein the search results videocomprises presentation of respective pictures, prices and titles of theplurality of listings.
 20. A machine-readable non-transitory storagemedium having instruction data to cause a machine to: present, on adisplay device search results as a search results video, the searchresults representing a plurality of listings; detect a select requestassociated with the search results video; determine a selected listingfrom the plurality of listings based on a playing state of the searchresults video at a time of the select request; and present the selectedlisting on the display device.